package com.IO.JieYaSuoLiu;

import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public class A01 {
    public static void main(String[] args) throws IOException {
        // 创建一个file表示要解压的压缩包
        File unzip = new File("D:\\TestFile\\zip\\aaa.zip");
        // 创建一个file表示解压的目的地
        File dest = new File("D:\\TestFile\\zip");
        unzip(unzip,dest);
    }
    
    // 定义一个解压方法
    public static void unzip(File zipUrl,File dest) throws IOException {
        // 创建一个解压缩流用来读取压缩包中的数据
        ZipInputStream zip = new ZipInputStream(new FileInputStream(zipUrl));
        // 先读取到压缩包里面的每一个zipentry对象
        // ZipEntry entry1 = zip.getNextEntry();
        ZipEntry entry;
        while ((entry = zip.getNextEntry()) != null){
            // System.out.println(entry);
            if(entry.isDirectory()){
                File file = new File(dest,entry.toString());
                file.mkdirs();
            } else {
                FileOutputStream fos = new FileOutputStream(new File(dest,entry.toString()));
                int n;
                while ((n = zip.read()) != -1) {
                    fos.write(n);
                    fos.close();;
                }
                // 表示在压缩包中的一个文件处理完毕了
                zip.closeEntry();
            }
        }
        zip.close();
    }
}
